package com.dynabook.ems.model.entity;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * @TableName ems_main_engine
 */
@TableName(value = "ems_main_engine")
@Data
public class EmsMainEngine implements Serializable {
    /**
     * 资产编号
     */
    @TableId(value = "fixed_no")
    private String fixedNo;

    /**
     * 资产名称
     */
    @TableField(value = "MODEL_NAME")
    private String modelName;

    /**
     * 区分
     */
    @TableField(value = "category")
    private String category;

    /**
     * 资产序列号
     */
    @TableField(value = "SERIAL_NO")
    private String serialNo;

    /**
     * CPU
     */
    @TableField(value = "CPU")
    private String cpu;

    /**
     * 硬盘
     */
    @TableField(value = "HDD")
    private String hdd;

    /**
     * 内存
     */
    @TableField(value = "MEMORY")
    private String memory;

    /**
     * 型号
     */
    @TableField(value = "type")
    private String type;

    /**
     * 购买日期
     */
    @TableField(value = "purchase_date")
    private LocalDateTime purchaseDate;

    /**
     * 发票日期
     */
    @TableField(value = "invoice_date")
    private LocalDateTime invoiceDate;

    /**
     * 保修日期
     */
    @TableField(value = "warranty_date")
    private LocalDateTime warrantyDate;

    /**
     * 实际价格
     */
    @TableField(value = "actual_price")
    private String actualPrice;

    /**
     * 含税价格
     */
    @TableField(value = "tax_inclusive_price")
    private String taxInclusivePrice;

    /**
     * 屏幕尺寸
     */
    @TableField(value = "screen_size")
    private String screenSize;

    /**
     * Mac地址
     */
    @TableField(value = "mac_address")
    private String macAddress;

    /**
     * 光驱
     */
    @TableField(value = "cd_rom")
    private String cdRom;

    /**
     * 发票号
     */
    @TableField(value = "invoice_no")
    private String invoiceNo;

    /**
     * 是否免3c
     */
    @TableField(value = "three_c_flag")
    private Integer threeCFlag;

    /**
     * 免3c证明号
     */
    @TableField(value = "three_c_code")
    private String threeCCode;

    /**
     * 位置
     */
    @TableField(value = "location")
    private String location;

    /**
     * 部门
     */
    @TableField(value = "department")
    private Integer department;

    /**
     * 课长
     */
    @TableField(value = "section_manager")
    private Integer sectionManager;

    /**
     * 备注
     */
    @TableField(value = "remark")
    private String remark;

    /**
     * 拒绝记录
     */
    @TableField(value = "reject_flag")
    private Integer rejectFlag;

    /**
     * 损坏
     */
    @TableField(value = "broken")
    private Integer broken;

    /**
     * 样机状态
     */
    @TableField(value = "model_status", updateStrategy = FieldStrategy.NOT_NULL)
    private Integer modelStatus;

    /**
     * 入库操作者
     */
    @TableField(value = "instore_operator")
    private String instoreOperator;

    /**
     * 入库时间
     */
    @TableField(value = "instore_date")
    private LocalDateTime instoreDate;

    /**
     * 报废操作者
     */
    @TableField(value = "scrap_operator")
    private String scrapOperator;

    /**
     * 报废时间
     */
    @TableField(value = "scrap_date")
    private LocalDateTime scrapDate;

    /**
     * 使用者
     */
    @TableField(value = "user_id")
    private String userId;

    /**
     * 开始使用时间
     */
    @TableField(value = "start_date")
    private LocalDateTime startDate;

    /**
     * 预估归还时间
     */
    @TableField(value = "predict_date")
    private LocalDateTime predictDate;

    /**
     * 结束使用时间
     */
    @TableField(value = "end_date")
    private LocalDateTime endDate;

    /**
     * 审批操作者ID
     */
    @TableField(value = "approver_id")
    private String approverId;

    /**
     * 审批时间
     */
    @TableField(value = "approve_date")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime approveDate;

    /**
     * 使用者姓名
     */
    @TableField(value = "user_name")
    private String userName;

    /**
     * 审批者姓名
     */
    @TableField(value = "approver_name")
    private String approverName;

    /**
     * 流水号（退运&出关，请用此号码）
     */
    @TableField(value = "serial_number")
    private String serialNumber;

    /**
     * 供应商
     */
    @TableField(value = "supplier")
    private String supplier;

    /**
     * 所属类别
     */
    @TableField(value = "big_category")
    private String bigCategory;

//    /**
//     * 所属细分
//     */
//    @TableField(value = "small_category")
//    private String smallCategory;

    /**
     * 可否外借 1可外借 0 不可外借
     */
    @TableField(value = "can_borrow")
    private Integer canBorrow;

    /**
     * 总数
     */
    @TableField(value = "total_num")
    private Integer totalNum;

    /**
     * 库存
     */
    @TableField(value = "inventory_num")
    private Integer inventoryNum;

    /**
     * 已使用数量
     */
    @TableField(value = "used_num")
    private Integer usedNum;

    /**
     * 报废数量
     */
    @TableField(value = "scrap_num")
    private Integer scrapNum;

    /**
     * 关联工单
     */
    @TableField(value = "worker_order")
    private String workerOrder;

    /**
     * 退运/报废
     */
    @TableField(value = "return_order")
    private String returnOrder;

    /**
     * 主板 PCBA
     */
    @TableField(value = "motherboard")
    private String motherboard;
    /**
     * 样品单价
     */
    @TableField(value = "unitprice")
    private String unitPrice;

    /**
     * 数据插入时间
     */
    @TableField(value = "insert_time")
    private LocalDateTime insertTime;

    /**
     * 数据更新时间
     */
    @TableField(value = "update_time")
    private LocalDateTime updateTime;
    /**
     * 可否工单
     */
    @TableField(value = "can_work_order")
    private Integer canWorkOrder;

    /**
     * OA单号
     */
    @TableField(value = "oa_request_id")
    private String oaRequestId;

    /**
     * 工单编号
     */
    @TableField(value = "work_order_number")
    private String workOrderNumber;

    /**
     * 是否重复 1重复 0 不重复
     */
    @TableField(value = "is_repeat")
    private Integer isRepeat;

    /**
     * 重复信息
     */
    @TableField(value = "repeat_message")
    private String repeatMessage;



    /**
     * 成品型号
     */
    @TableField(value = "finished_product_model")
    private String finishedProductModel;



    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}